package com.xht.controller;

import com.xht.domain.ResponseResult;
import com.xht.domain.dto.TagAddDto;
import com.xht.domain.dto.TagListDto;
import com.xht.domain.entity.Tag;
import com.xht.service.TagService;
import com.xht.vo.PageVo;
import com.xht.vo.TagVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/content/tag")
public class TagController {
    @Autowired
    private TagService tagService;

    /**
     * 标签管理模块-展示 所有 标签 ,并且带查询条件 查询
     *
     * @param pageNum
     * @param pageSize
     * @param tagListDto
     * @return
     */
    @GetMapping("/list")
    public ResponseResult<PageVo> list(Integer pageNum, Integer pageSize, TagListDto tagListDto) {
        return tagService.pageTagList(pageNum, pageSize, tagListDto);
    }

    /**
     * 写博文模块-展示所有 标签
     */
    @GetMapping("/listAllTag")
    public ResponseResult<TagVo> listAllTag() {
        return tagService.listAllTag();
    }

    /**
     * 增加标签
     * @param tagAddDto
     * @return
     */
    @PostMapping
    public ResponseResult addTag(@RequestBody TagAddDto tagAddDto) {
        return tagService.addTag(tagAddDto.getName(), tagAddDto.getRemark());
    }

    /**
     * 删除标签
     */
    @DeleteMapping("/{id}")
    public ResponseResult deleteTag(@PathVariable Integer id) {
        return tagService.deleteTag(id);
    }

    /**
     * 修改标签信息 1,先展示 标签信息
     */
    @GetMapping("/{id}")
    public ResponseResult getTag(@PathVariable Integer id) {
        return tagService.getTag(id);
    }

    /**
     * 修改标签信息 2,再提交修改的标签
     */
    @PutMapping
    public ResponseResult fixTag(@RequestBody Tag tag) {
        return tagService.fixTag(tag);
    }

}
